Non-volatile memory systems, such as flash memory, have been widely adopted for use in consumer products. Flash memory may be found in different forms, for example in the form of a portable memory card that can be carried between host devices or as a solid state disk (SSD) embedded in a host device. When writing data to a conventional flash memory system, a host typically writes data to, and reads data from, addresses within a logical address space of the memory system. The memory system then commonly maps data between the logical address space and the physical blocks or metablocks of the memory, where data is stored in fixed logical groups corresponding to ranges in the logical address space. Generally, each fixed logical group is stored in a separate physical block of the memory system. The memory system keeps track of how the logical address space is mapped into the physical memory but the host is unaware of this. The host keeps track of the addresses of its data files within the logical address space but the memory system generally operates without knowledge of this mapping.
An address table in the memory system includes the mapping of the logical address space to the physical memory. In particular, the address table includes pages indicating the mapping of logical groups to physical blocks in the memory system. When the host writes data to logical groups that have already been mapped, the address table may be updated with the pertinent mapping information.
Some memory systems contain a cache to the address table to temporarily store changes to the address table when data is written. Writing to an address table cache instead of to the address table may save some time and write operation overhead. Memory systems with an address table cache may periodically synchronize the changed entries in the cache with the address table by updating the entire cache to the address table, regardless of the amount of actual changed entries in the cache. However, in a large memory system that may have over one hundred pages in the address table, updating the entire address table with changed entries in the address table cache may negatively affect performance and delay other operations in the memory system. Pages in the address table may be unnecessarily rewritten if no changes were made. The flash memory cells used to store the address table may also be worn out prematurely when the entire address table is written.